import axios from 'axios'

// 创建axios实例
const api = axios.create({
  baseURL: 'http://localhost:8000',
  timeout: 5000,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
api.interceptors.request.use(
  config => {
    // 可以在这里统一添加token等认证信息
    const token = localStorage.getItem('token')
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器
api.interceptors.response.use(
  response => {
    // 可以在这里统一处理响应
    return response
  },
  error => {
    // 统一处理错误
    return Promise.reject(error)
  }
)

// 用户相关API
export const userApi = {
  // 登录
  login(username, password) {
    console.log('调用登录API:', username)
    return api.post('/login', { username, password })
      .then(response => {
        console.log('登录API响应成功:', response)
        return response
      })
      .catch(error => {
        console.error('登录API响应错误:', error)
        throw error
      })
  },
  
  // 登出
  logout() {
    return api.post('/logout')
  },
  
  // 获取用户信息
  getUserInfo() {
    return api.get('/user/info')
  }
}

// 宠物相关API
export const petApi = {
  // 获取宠物列表
  getPets() {
    return api.get('/pets')
  },
  
  // 获取宠物详情
  getPetById(id) {
    return api.get(`/pets/${id}`)
  }
}

// 库存管理相关API
export const inventoryApi = {
  // 获取所有库存
  getInventory(params = {}) {
    const defaultParams = {
      pageNum: 0,
      pageSize: 10,
      inventory: {
        name: ''
      }
    }
    // 合并默认参数和传入的参数
    const requestParams = { ...defaultParams, ...params }
    
    return api.post('/admin/Inventory/getInventory', requestParams)
  },
  
  // 获取单个库存项详情
  getInventoryItem(id) {
    return api.get(`/inventory/${id}`)
  },
  
  // 添加库存项
  addInventoryItem(data) {
    return api.post('/inventory', data)
  },
  
  // 更新库存项
  updateInventoryItem(id, data) {
    return api.put(`/inventory/${id}`, data)
  },
  
  // 删除库存项
  deleteInventoryItem(id) {
    return api.delete(`/inventory/${id}`)
  }
}

// 订单相关API
export const orderApi = {
  // 获取订单列表
  getOrders() {
    return api.get('/orders')
  },
  
  // 创建订单
  createOrder(data) {
    return api.post('/orders', data)
  }
}

export default api 